BioContainers のイメージが ECR Public で利用可能になりました

BioContainers のイメージが ECR Public で利用可能になりました

バイオインフォマティクスツールの流通経路が広がりました。
Clock Icon2022.10.13

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

BioContainers で公開されているバイオインフォマティクスツールのコンテナイメージが ECR Public で利用可能になりました。

ECR Public とは

パブリックに公開向けコンテナレジストリで Docker Hub みたいなものです。ちなみにイメージを pull するために AWS アカウントは必要ありません。

BioContainers

BioContainersで公開されているイメージはQuay.ioに保存されていることが多かったですが、これからは ECR Public からもイメージを Pull することができます。

ECR Public Gallery Biocontainers

現在レポジトリ数は8000弱ありました。ツール名で検索してみてください。

試しに Busco のイメージを Pull してみます。docker pull public.ecr.aws/hogeのようにpublic.ecr.aws/と指定するだけです。

$ docker pull public.ecr.aws/biocontainers/busco:2.0--py27_0
2.0--py27_0: Pulling from biocontainers/busco
4f4fb700ef54: Pull complete
b0dc45cd432d: Pull complete
9466b3513669: Pull complete
ddd482ea7b54: Pull complete
4d69f833b9d8: Pull complete
e7c454e5167d: Pull complete
e38092b005c0: Pull complete
f879b42dfe2b: Pull complete
96272e670bb4: Pull complete
Digest: sha256:608d80dcc425da7fe2bb3dc9d2c3e4adf483ee205b1ee0c90eec4a03bae4791a
Status: Downloaded newer image for public.ecr.aws/biocontainers/busco:2.0--py27_0
public.ecr.aws/biocontainers/busco:2.0--py27_0

M1 Mac(arm)で起動してみました。

$ docker run -it public.ecr.aws/biocontainers/busco:2.0--py27_0
WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested

buscoコマンドは当然利用できますね。

# busco -v
BUSCO 2.0

以前 BioContainers から Pull したイメージを使ったことがありますので Busco については以下のリンクを参照ください。

salmon のイメージも試してみました。全く同じですね。

$ docker pull public.ecr.aws/biocontainers/salmon:v0.7.2ds1-2b1-deb_cv1
$ docker run -it public.ecr.aws/biocontainers/salmon:v0.7.2ds1-2b1-deb_cv1
WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested

$ salmon -v
version : 0.7.2

とくに変わりなく ECR Public から Biocontainers イメージを pull できるようになったことを確認できました。

Tips

ECR Public から VPC エンドポイント経由で Pull はできない

現状 VPC エンドポイント経由で Pull することはできません。NAT Gateway などのインターネットへ通信できる経路か、インターネットへ通信経路を確保できない事情があれば、事前にイメージを Pull した上で Private な ECR へ Push しておき VPC エンドポイント経由でアクセスすることになります。

[ECR Public] [request]: Add VPC (PrivateLink) support for public repo push and pull · Issue #1160 · aws/containers-roadmap

ECR Public から Pull できない

ECR Pubic から pull するときに'docker login': denied: Your authorization token has expired. Reauthenticate and try again.とエラーメッセージが出力されるときは、

$ docker pull public.ecr.aws/biocontainers/busco:2.0--py27_0
Error response from daemon: pull access denied for public.ecr.aws/biocontainers/busco, repository does not exist or may require 'docker login': denied: Your authorization token has expired. Reauthenticate and try again.

一度ログアウトすると解消します。

$ docker logout public.ecr.aws
Removing login credentials for public.ecr.aws

フィルターは機能していない

ARM 用のイメージあるかなとフィルタしてみたらなくて、x86-64 でもフィルターされなかったので機能していませんでした。

おわりに

AWS Batchや、AWS ParallelCluster で BioContainers のイメージを使うときは ECR Public を使ってみてはいかがでしょうか。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.